"""
Замена символов текст по солварю.

Author: Milinuri Nirvalen
Ver: 1.5.1 (8)
"""

from chiori import Config
from chiori import Plugin
from libs.utils import clear_text


p = Plugin(name='замена символов')
path = 'data/replace.toml'

# func
# ####

def replace(text, sl, reverse=False):
	text = clear_text(text)

	for k, v in sl.items():
		if reverse:
			text = text.replace(v, k)
		else:
			text = text.replace(k, v)

	return text


# commands
# ########

@p.command('replace', 'заменить', 'rt', usage='[sl] [text/reply] замена текста')
async def replaceText(event, ctx):
	c = Config(None, {'default_sl':'en_ru', 'en_ru':{}}, path).file_data

	if event.get('reply.text'):
		text = event.get('reply.text')
	elif ctx.args:
		text = ' '.jin(ctx.args[1:])
	else:
		text = ''

	if ctx.args:
		sl = c.get(ctx.args[0], {})
	elif c.get(c["default_sl"]):
		sl = c[c["default_sl"]]


	if text and  sl:
		await ctx.message(replace(text, sl))
	else:
		text = f'''для замены текста укажите [имя словаря] [текст/перешлите сообщение]
\nсловарь по умолчанию: {c["default_sl"]}

\nдоступные словари: {", ".join(list(c.keys()))}'''
		await ctx.message(text)
